1. Field of the Invention
The present invention generally relates to an image processing apparatus and an information processing system.
2. Description of the Related Art
Nowadays, an image forming apparatus, such as a printer, a copier, a scanner, a facsimile, or a multifunction copier having functions of these apparatuses normally has a configuration, although its memory is limited, similar to that of a general purpose computer where functions are implemented by a CPU and application programs.
For example, in an image forming apparatus disclosed in patent document 1, common functions used by multiple application programs are provided as a platform and therefore application programs can be implemented using application programming interfaces (APIs) provided by the platform. Such an image forming apparatus having common functions as a platform makes it possible to avoid overlapping functions being provided in multiple application programs and thereby to improve efficiency in developing application programs.
One difficulty in providing common functions or APIs as a platform in an image forming apparatus is to appropriately design the granularity of the functions or APIs in the platform. If the granularity is not designed appropriately, improvement in efficiency of application program development may not be expected.
For example, too fine granularity may make it necessary to call many APIs even when developing a simple application program and thereby complicate the source code of the application program.
On the other hand, too coarse granularity may increase the chance of having to modify an API in or add a new API to the platform in developing an application program involving a function slightly different from that provided in the platform and therefore may reduce development efficiency. Especially, when the dependency between modules or APIs in the platform is high, in addition to modifying or adding an API, it may become necessary to modify other dependent APIs.
Also, with the technology disclosed in patent document 1, it is not possible to implement a new application program providing a service similar to an existing application program by calling a part of the existing application program and by writing code only for a function (for example, image input) unique to the new application program. In other words, it is necessary to write source code from the scratch even to develop an application program similar to an existing application program.
[Patent document 1] Japanese Patent No. 3679349
To obviate the above problems, the present applicant/inventor is pursuing the possibility of developing a new framework where an application program executed in an image forming apparatus is composed of functions for inputting, processing, and outputting data. For example, an application program for copying may be composed of functions for inputting image data from a scanner, for processing (for example, N-up processing (“N-up processing” means combining multiple pages into one page)) the image data, and for outputting the image data on a plotter. Also, as another example, an application program for processing print requests from a client PC may be composed of functions for inputting (or receiving) print data via a network, for processing (for example, rendering) the print data, and for outputting the print data on a plotter. Compared with an environment where addition and removal of functions are possible only in units of application programs, a framework where application programs are composed of functional components (hereafter called “process components”) allows adding and removing functions based on the process components and thereby makes it possible to improve efficiency in developing application programs and to flexibly provide services to the user.
With such a framework, for example, an application program for scanning and an application program for copying may use the same process component for outputting image data on a plotter. Also, an application program for scanning and an application program for facsimile transmission may use the same process component for inputting image data from a scanner. Further, such a framework makes it possible to allow a user of an image forming apparatus to select process components for inputting, processing, or outputting data and thereby to provide various services according to the user's needs.
However, there is also a disadvantage in providing a user interface that allows the user to select process components. While such a user interface provides better flexibility, it may increase the number of user steps to perform a task (for example, copying) and thereby degrade operability.